//go:build !windows

/*
@auther fenglei
*/
package xxsys

import (
	"fmt"
	"os/user"
)

/**
 * 判断用户是否存在
 * @return false不存在，true存在
 * */
func IsUserExist(userName string) bool {
	_, err := user.Lookup(userName)
	if err != nil {
		return false
	}
	return true
}

// 添加用户 true成功 false失败
func AddUser(userName, passWd, uid string) error {
	if IsUserExist(userName) {
		return fmt.Errorf("用户已经存在:%s", userName)
	}
	//添加用户
	addCommand := fmt.Sprintf(`useradd -u %s %s`, uid, userName)
	_, err := ExecCmdSh(addCommand)
	if err != nil {
		return err
	}
	//创建用户密码
	pwdCommand := fmt.Sprintf(`echo %s | passwd --stdin %s`, passWd, userName)
	_, err1 := ExecCmdSh(pwdCommand)
	if err1 != nil {
		return err1
	}
	return nil
}

// 用户授权
func ChownExec(userName string, path string) error {
	if !IsUserExist(userName) {
		return fmt.Errorf("用户不存在:%s", userName)
	}
	command := fmt.Sprintf(`chown %s.%s -R %s`, userName, userName, path)
	_, err := ExecCmdSh(command)
	return err
}
